/*
 * CrystalAnalysis.h
 *
 *  Created on: Aug 6, 2012
 *      Author: koschke
 */

#ifndef CRYSTALANALYSIS_H_
#define CRYSTALANALYSIS_H_
#include <votca/csg/csgapplication.h>

using namespace votca::csg;
using namespace votca::tools;
using namespace std;

class CrystalAnalysis: public CsgApplication {
public:
	CrystalAnalysis();
	~CrystalAnalysis();

	std::string ProgramName() {
		return "CrystalAnalysis";
	}

	void HelpText(ostream &out) {
		out
				<< "Analyzes the given trajectory for crystal symmetries based on the provided order parameter";
	}

	void Initialize();

	bool DoTrajectory() {
		return true;
	}

	bool DoThreaded() {
		return true;
	}

	void BeginEvaluate(Topology *top, Topology *top_ref);
	CsgApplication::Worker *ForkWorker(void);
	void MergeWorker(Worker *worker);
	void EndEvaluate();

private:

	Topology *top;
};

#endif /* CRYSTALANALYSIS_H_ */
